Skip to main content

例: OPC UA PubSub SL 図書館

製品:CODESYS OPC UA PubSub SL

ザル OPC UA PubSub SL Example.project 例では以下の使用方法を示しています。 OPC UA PubSub SL OPC UA Foundation で定義されている Pub/Sub プロトコルを介してメッセージを交換するためのライブラリ。

パッケージには 2 つ目の例も含まれています。 PubSubDataSet.project。の使用方法を示しています OPC UA PubSub SL さまざまなデータセットを提供して GVL インスタンスに接続するためのライブラリ。

説明

クライアント/サーバー通信に加えて、OPC UA Pub/Sub プロトコルを介した通信は、OPC UA Foundation の規則に従ってネットワークの加入者間でデータを交換する追加機能も提供します。

データの構造 (DataSet)は自由に定義でき、送信者と受信者の間で事前に合意されます。これにより、追加の (メタ) データを転送する必要がなくなります。データは、 OPC UA PubSub SL UADP に定義されているルールに従って、UDP/IP 経由でライブラリを作成します。

パブリッシャーは、そのデータを不特定の数のサブスクライバーに公開します。その結果、送信者と受信者はお互いを知りません。そのため、受信者の数が送信者に影響を与えることはありません。メッセージが受信者に届いたかどうかについての送信者への応答は、プロトコルの性質上、このプロトコルを介して送信することはできません。必要に応じて、そのような応答はアプリケーション固有の方法で管理する必要があります。

データは、OPC UA Foundation の規則に従ってバイナリ形式で転送されます。の OPC UA PubSub SL ライブラリは、IEC データ型から対応する OPC UA データ型への変換、またはその逆の変換を処理します。

実装は次のプロファイルに従います。

  • Publisher: PubSub Publisher UADP Periodic Fixed Settings

  • Subscriber: PubSub Subscriber UADP Periodic Fixed Settings

メッセージの長さは 1,500 バイト (MTU) に制限されています (チャンク ネットワーク メッセージはサポートされていません)。時間に敏感なネットワークのルールがまだ利用できない限り、ハード リアルタイム条件に準拠することはできません。ただし、実装は、 OPC UA PubSub SL ライブラリはジッターを可能な限り低く抑えようとします。

ライブラリには次の機能ブロックが含まれています。

  • DataSet:

    を定義します DataSet メッセージ

  • Configuration:

    接続やグループなどの共有リソースを管理します

  • RootDiagnostics:

    上位の診断データを通知します

  • Connection:

    パブリッシャーおよびサブスクライバーへの接続を管理します

  • ConnectionDiagnostics:

    接続に関する診断データを通知します (Connection)

  • ReaderGroup:

    管理します Reader 機能ブロック (からの NetworkMessage の作成) DataSet メッセージ)

  • ReaderGroupDiagnostics:

    に関する診断データを通知します。 ReaderGroup

  • Reader:

    を管理します DataSet ファンクションブロック(サブスクライバ)

  • ReaderDiagnostics:

    に関する診断データを通知します。 Reader ファンクションブロック

  • WriterGroup:

    管理します Writer 機能ブロック (からの NetworkMessage の作成) DataSet メッセージ)

  • WriterGroupDiagnostics:

    に関する診断データを通知します。 WriterGroup

  • Writer:

    を管理します DataSet 機能ブロック (出版社)

  • WriterDiagnostics:

    に関する診断データを通知します。 Writer ファンクションブロック

_example_img_opc_ua_blocks.png

サポートされている機能

  • OPC 10000-14: OPC Unified Architecture Part 14: PubSub Release 1.04 に準拠したメッセージのパブリッシュ/サブスクライブ

  • NetworkMessage の最大サイズ: 1,500 バイト

  • 現在のパケット サイズとペイロードは、それぞれの ReaderGroup/WriterGroup の設定によって設定できます。 DataSet 機能ブロック。

  • それぞれのバックグラウンドタスクによるサポート Connection ファンクションブロック

  • 次のプロファイルがサポートされています。

    • Publisher: PubSub Publisher UADP Periodic Fixed Settings

    • Subscriber: PubSub Subscriber UADP Periodic Fixed Settings

追加情報

Device_1 アプリケーションは、 NetworkMessage

Device_2 このアプリケーションは、含まれる機能ブロックを使用してメッセージを送信する方法を示します。

  1. ハードウェア

    1. 2 つ必要です CODESYS UDP マルチキャストをサポートするネットワーク上で接続されている PLC。

    2. プロジェクトで、更新してデバイス構成をデバイスに適応させます。 Device_1Device_2 使用されているハードウェアに。

  2. プロジェクト内のカスタマイズ

    1. IPアドレスを設定します。 GlobalIP 設定したハードウェアへの GVL。この GVL は次の場所にあります。 POU エリア。

    2. マルチキャスト アドレスをネットワーク内の空きアドレスに設定します。

      注: プライベート ネットワークに接続していない場合は、ネットワーク管理者にフリー アドレスの割り当てを依頼してください。

    3. ポートを設定します。デフォルトのポート 4840 は、OPC UA PubSub に推奨されるポートです。

  3. 両方のコントローラーにログインし、アプリケーションを起動します。

  4. 送信側と受信側の両方を開始します。

    Device_2: PLC_PRG.xEnable := TRUE

    Device_1: Communication_PRG.xEnable := TRUE

    受信側では、サインの値がどのように変化するかを確認できるはずです。送信側で他の値を手動で変更し、受信側で変更を確認できます。

手順. 例を拡張するための提案

変数を追加します DataSet すでに送信されています。

  1. 拡張する SensorDataSet._aIndex 1回のエントリーで。任意のデータ型を選択します。

  2. SensorDataSet.Initのバージョンを調整します。 DataSet 日付エントリを更新することによって。

  3. の中に PLC_PRG 送信側のプログラムで、選択したデータ型の変数を作成します。値を割り当てる txSensorDataSet.PrepareValues 変数に。

  4. rxSensorDataSet.PrepareValues、受信側でこの手順を繰り返します。ここでもあらかじめ同じ型の変数を新規作成しておきます。

  5. 新しいダウンロードを実行します。

    新しい変数も送信する必要があります。

1. 一般的な構成の例
_example_img_opc_ua_pubsub_config.png


システム要件と制限事項

プログラミングシステム

CODESYS Development System (バージョン 3.5.17.0 またはそれ以降)

ランタイムシステム

CODESYS Control Win (バージョン 3.5.14.0)

注記

それぞれのランタイム システムの機能に応じて、メッセージはユニキャスト、マルチキャスト、またはブロードキャスト経由で送信できます。

サポートされているプラットフォーム/デバイス

ヒント

使用 Device Reader プロジェクトを参照して、デバイスのサポートされている機能を確認します。 Device Reader で無料で利用できます CODESYS Store International

制限

  • ネットワークメッセージの最大長は 1,500 バイトです。

    (Chunked NetworkMessages not supported)

  • 送信時点はタスク設定によって決定されます。

    udiPublishingInterval パラメータは何の効果もありません。

アドオンコンポーネント

CODESYS OPC UA PubSub SL

注記

_example_icon.png ダウンロード プロジェクト